package JDBC;
import java.io.*;
/**
 * 客户端及界面的实现
 */
//create table t_student(id int auto_increment primary key not null,name varchar(45),age int);
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.*;
import javax.swing.*;
public class ChatClient extends JFrame{
	Socket socket;
	PrintWriter pw;
	BufferedReader br;
	JPanel panel;
	JTextArea txt;
	JScrollPane spane;
	JLabel name,send;
	JTextField txtName,txtSend;
	JButton jb;
	public ChatClient() 
	{
		super("QST18🈲成人聊天室");
		txt=new JTextArea();
		//设置文本只读
		txt.setEditable(false);
		spane=new JScrollPane(txt);
		
		jb=new JButton("发送");
		name=new JLabel("昵称：");
		send=new JLabel("发言：");
		txtName=new JTextField(5);
		txtSend=new JTextField(20);

		panel=new JPanel();
		panel.add(jb);
		
		panel.add(name);
		panel.add(txtName);
		panel.add(send);
		panel.add(txtSend);
		this.add(spane);
		this.add(panel,BorderLayout.SOUTH);
		
		this.setVisible(true);
		this.setSize(500, 300);
		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
		try
		{
			socket =new Socket("172.24.146.44",28888);
			//创建输出流给服务器发消息
			pw=new PrintWriter(socket.getOutputStream());
			//创建输入流读服务器返回的消息
			br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
		}
		catch(Exception e) 
		{
			e.printStackTrace();
		}
		//对按钮添加监听器
		jb.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				// 得到用户的输入
				String name=txtName.getText();
				String send=txtSend.getText();
				//如果不等于空，PrintWriter对象进行储存进服务器的输出流中
				if(!send.equals("")) 
				{
					pw.println(name+"："+send);
					pw.flush();//先调用flush()方法，强制把数据输出，缓存区就清空了。
					//清空文本框
					txtSend.setText("");
				}
			}
		});
//		new GetMsgFromServer().start();
		//读线程启动
		new Thread(()->
		{
		try 
		{
			while(true) 
			{
				 
					String msg=br.readLine();//读取输入进缓冲流的数据
					if(msg!=null) 
					{
						txt.append(msg+"\n");
					}
					Thread.sleep(50);
			}
		}
		 catch (Exception e1) 
		{
			e1.printStackTrace();
		}
		}).start();
//		Thread t=new Thread(r);
//		t.start();
	}
//	class GetMsgFromServer extends Thread{
//		public void run()
//		{
//			while(this.isAlive()) 
//			{
//				try 
//				{
//					String msg=br.readLine();//读取输入进缓冲流的数据
//					if(msg!=null) 
//					{
//						txt.append(msg+"\n");
//					}
//					Thread.sleep(50);
//				}
//				catch(Exception e) 
//				{
//					e.printStackTrace();
//				}
//			}
//		}
//	}
	public static void main(String args[]) {
		ChatClient c=new ChatClient();
	}
}
